{{tag>matériel webcam domotique sécurité vidéosurveillance}}

----

====== Motion ======

**Motion** est un logiciel de détection vidéo et qui permet de diffuser un flux vidéo via internet par le protocole HTTP. Il est une solution simple pour diffuser le flux de sa webcam en ligne, ou de détecter des mouvements dans le champ d'une caméra par exemple.

===== Pré-requis =====

  * Disposer des [[:sudo|droits d'administration]].
  * Disposer d'une connexion à Internet configurée et activée.
  * Avoir activé les [[:depots#universe_et_multiverse|dépôts Universe]].
  * Avoir une [[:Webcam|webcam]] qui fonctionne.

Pour vérifier l'installation de votre webcam saisir dans un terminal  : <code>gstreamer-properties</code> dans Video/Test, le test devrait afficher l'image de votre webcam.


===== Installation =====

Il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://motion|motion]]**



==== Lancement automatique ====


Par défaut, le daemon **motion** n'est pas activé/démarré.

Si l'on veut l'activer, il faut mettre à 'Yes' la variable //start_motion_daemon// dans le fichier **/etc/default/motion**.


En mode utilisateur (hors daemon), le mieux est de copier le fichier **/etc/motion/motion.conf** dans son propre dossier personnel. Dans un [[terminal]] :
  sudo cp /etc/motion/motion.conf ~/
Puis, mettre les bon droits :
  sudo chown $USER ~/motion.conf







==== Configuration de base pour une webcam ====

Maintenant nous allons [[:tutoriel:comment_editer_un_fichier|éditer le fichier]] ''motion.conf''\\

Les variables sont nombreuses et relativement bien expliquées en lignes de commentaires.

Les principaux paramètres a changer sont : **target_dir**,  **width & height** (résolution). Les remplacer par les valeurs de votre choix.

Voici un exemple de motion.conf :
<file>
daemon off
process_id_file /var/run/motion/motion.pid
setup_mode off
videodevice /dev/video0
v4l2_palette 8
input 8
norm 0
frequency 0
rotate 0
width 640
height 480
framerate 2
minimum_frame_time 0
netcam_tolerant_check off
auto_brightness off
brightness 0
contrast 0
saturation 0
hue 0
roundrobin_frames 1
roundrobin_skip 1
switchfilter off
threshold 1500
threshold_tune off
noise_level 32
noise_tune on
despeckle EedDl
smart_mask_speed 0
lightswitch 0
minimum_motion_frames 1
pre_capture 0
post_capture 0
gap 60
max_mpeg_time 0
output_all off
output_normal on
output_motion off
quality 75
ppm off
ffmpeg_cap_new on
ffmpeg_cap_motion off
ffmpeg_timelapse 0
ffmpeg_timelapse_mode daily
ffmpeg_bps 500000
ffmpeg_variable_bitrate 0
ffmpeg_video_codec swf
ffmpeg_deinterlace off
snapshot_interval 0
locate off
text_right %Y-%m-%d\n%T-%q
text_changes off
text_event %Y%m%d%H%M%S
text_double off
target_dir /tmp/motion
snapshot_filename %v-%Y%m%d%H%M%S-snapshot
jpeg_filename %v-%Y%m%d%H%M%S-%q
movie_filename %v-%Y%m%d%H%M%S
timelapse_filename %Y%m%d-timelapse
webcam_port 8081
webcam_quality 50
webcam_motion off
webcam_maxrate 1
webcam_localhost off
webcam_limit 0
control_port 8080
control_localhost on
control_html_output on
track_type 0
track_auto off
track_motorx 0
track_motory 0
track_maxx 0
track_maxy 0
track_iomojo_id 0
track_step_angle_x 10
track_step_angle_y 10
track_move_wait 10
track_speed 255
track_stepsize 40
quiet on
sql_log_image on
sql_log_snapshot on
sql_log_mpeg off
sql_log_timelapse off
sql_query insert into security(camera, filename, frame, file_type, time_stamp, event_time_stamp) values('%t', '%f', %q', '%n', '%Y-%m-%d %T', '%C')
</file>

<note tip> Pour connaitre les résolutions supportées, ou tout simplement pour tester sa webcam,  **[[apt://cheese|cheese]]** est un bon candidat.</note>


Ici, les mouvements détectés par la webcam seront sauvegardés au format swf, résolution 640x480 dans le répertoire /tmp/motion.

Le flux video de la webcam sera accessible par tous (**webcam_localhost off**) sur le port 8081.


Pour démarrer le processus : 

  motion -c motion.conf


==== Configuration pour plusieurs webcams ====

Lorsque plusieurs webcams sont utilisées, il faut dédier un fichier //threadN.conf// par webcam.

A la fin du fichier //motion.conf//, rajouter une ligne par webcam.
  thread /chemin_jusque_fichier_thread.conf


Chaque fichier //thread.conf// reprend des paramètres du //motion.conf// qu'il va forcer pour chacune des webcams.
Bien renseigner le paramètre **videodevice** qui doit etre different pour chaque fichier //thread.conf//.

Par défaut, les scripts de post-capture et de pré-capture ///usr/local/motion-extras/// ne sont pas fournis lors de l'installation du paquet **motion**.

Exemple de fichier thread.conf

  videodevice /dev/video1
  input 8
  text_left CAMERA COULOIR 1
  target_dir /tmp/motion
  webcam_port 6881



===== Voir aussi =====

  * [[http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome|Site officiel de Motion]]
  * qmotion :http://slist.lilotux.net/linux/qmotion/index_fr.html qui fait entre autre l'envoi ftp.
  * Kmotion avec interface web http://kmotion.eu/mediawiki/index.php/Main_Page

----
